/* 
 * File:   camera.h
 * Author: Ernest Mashele <mashern@gmail.com>
 *
 * Created on April 12, 2011, 1:56 PM
 */

#pragma once
#include <D3DX10math.h>

class Camera {
private:
    // Camera Position
    D3DXVECTOR3 Pos;

    float yrot;
    float xrot;
    float zrot;

    // Movement Vectors
    D3DXVECTOR3 ymove;
    D3DXVECTOR3 zmove;
    D3DXVECTOR3 xmove;

    float GetAngle(float angle) const;
public:
    Camera(D3DXVECTOR3 startPos);
    ~Camera(void);

    void GetViewMatrix(D3DXMATRIX *);

    // Move operations
    void MoveForward(float amount);
    void MoveRight(float amount);
    void MoveUp(float amount);

    // Rotations
    void Yaw(float amount);
    void Pitch(float amount);
    void Roll(float amount);
};
